/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufscar.compiladores.ast;

import java.io.*;
import java.util.Collection;

abstract public class Subroutine {
    
    // fields should be accessible in subclasses
    protected String name;
    protected Collection<VarDecList> localVarList;
    protected ProcBody procBody;
    protected ParamList paramList;

    abstract public void genC(PW pw);

    public String getName() {
        return name;
    }

    public void setParamList(ParamList paramList) {
        this.paramList = paramList;
    }

    public ParamList getParamList() {
        return paramList;
    }

    public void setLocalVarList(Collection<VarDecList> localVarList) {
        this.localVarList = localVarList;
    }

    public void setProcBody(ProcBody procBody) {
        this.procBody = procBody;
    }

}